package onenet

//响应通用参数
type Respose struct {
	Errno int    `json:"errno"`
	Msg   string `json:"error"`
}

func (this *Respose) Ok() bool {
	return this.Msg == "succ"
}

func (this *Respose) Err() error {
	if !this.Ok() {
		return this
	}
	return nil
}

func (this *Respose) Error() string {
	if this.Msg == "device not online" {
		return "设备不在线,请重启设备"
	}
	return this.Msg
}

func (this *Respose) string() string {
	return this.Msg
}

func errNoToString(n int) string {
	switch n {
	case 0:
		return "请求成功"
	case 1:
		return "鉴权失败，请核实自己的api-key和imei是否对应匹配。"
	case 3:
		return "没有请求的body数据或者请求body数据格式错误。"
	case 7:
		return "内部服务处理堆积，这时建议间隔重试或者将请求的timeout设置大一点。"
	case 2001:
		return "设备不在线，排查终端是否正常注册到平台。"
	case 5006:
		return "平台限制，请认真看文档参数的限制条件。"
	case 5106:
	//1：METHOD_NOT_ALLOWED（对象或资源不允许该操作）
	//case 2：FORBIDDEN（终端设备未注册）
	//case 3：NOT_FOUND（未发现该对象或资源）
	//case 4：INTERNAL_SERVER_ERROR（设备响应码错误等）
	//case 5：TIME_OUT（设备响应超时）
	//case 6：REQ_PARAM_ERROR（请求参数错误）
	//case 7：RESP_ERROR（设备响应报文错误）
	//case 8：UNAUTHORIZED（访问权限不允许）
	//case 9：BAD_REQUEST（请求格式错误，如少参数或编码等）
	//case 10：NOT_ACCEPTABLE（无任何首选的报文格式可以返回）
	//case 11：UNSUPPORTED_CONTENT_FORMAT（指定的报文格式不支持）
	//case 12：OFFLINE（设备未注册）
	//case 13：ADDR_OCCUPIED（设备的地址被其他设备占用）
	case 5108:
		return "无效的参数/重试。"
	case 5117:
		return "内部服务异常，重试。"
	}
	return ""
}
